package com.itshare.video.service;

import com.fasterxml.jackson.databind.annotation.JsonAppend;
import com.itshare.video.common.annontation.AttrData;
import com.itshare.video.common.dto.PageEntity;
import com.itshare.video.common.dto.QueryInfo;
import com.itshare.video.common.dto.Result;
import com.itshare.video.pojo.bo.FeedBackMessageBO;
import com.itshare.video.pojo.bo.ReportVideoMessageBO;
import com.itshare.video.pojo.dto.ReplyMsgDTO;
import com.itshare.video.pojo.dto.UserTokenDTO;
import com.itshare.video.pojo.po.UserMessage;

/**
 * @Author lyr
 * @create 2020/10/31 14:30
 */
public interface UserMessageService {

    /**
     * 获取个人消息推送
     * @return
     */
    PageEntity<UserMessage> getUserMessage(Integer userId,Integer messageType);


    /**
     * 获取用户举报 或者 反馈的消息
     * @param userTokenDTO
     * @return
     */
    PageEntity<UserMessage> getFeedBackMessage(UserTokenDTO userTokenDTO);


    /**
     * 举报视频内容
     * @return
     */
    Result<?> reportVideoIllegal(ReportVideoMessageBO videoMessageBO, @AttrData UserTokenDTO userTokenDTO);


    /**
     * 用户反馈
     * @return
     */
    Result<?> userFeedback(FeedBackMessageBO feedBackMessageBO,UserTokenDTO userTokenDTO);


    /**
     * 处理 举报不通过
     * @param messageId
     * @return
     */
    Result<?> handleFeedbackNoPass(Integer messageId);


    /**
     * 用户举报成功
     * @param messageId
     */
    void sendFeedbackMessageOK(Integer messageId);


    /**
     * 删除消息
     * @param msgId
     */
    void deleteMsg(Integer msgId);


    void replyMsg(Integer msgId, ReplyMsgDTO replyMsgDTO,UserTokenDTO userTokenDTO);

    PageEntity<UserMessage> getFeedbackMsg(Integer msgType, QueryInfo queryInfo);
}
